跳到主要内容

Set 常用方法

类型基础介绍见 Python 数据类型。

增删方法​

方法说明示例
add(x)添加元素{1}.add(2) → {1, 2}
update(iterable)批量添加{1}.update([2, 3]) → {1, 2, 3}
remove(x)删除元素,不存在时抛 KeyError{1, 2}.remove(1) → {2}
discard(x)删除元素,不存在时不报错{1, 2}.discard(10) → {1, 2}
pop()随机移除并返回一个元素{1, 2}.pop() → 1
clear()清空集合{1, 2}.clear() → set()
nums = {1, 2, 3}

nums.add(4) # {1, 2, 3, 4}
nums.discard(10) # 元素不存在,不报错
# nums.remove(10) # KeyError: 10
print(nums) # {1, 2, 3, 4}

集合运算​

运算操作符方法示例(a=3, b=4)
并集|union()a | b → {1, 2, 3, 4}
交集&intersection()a & b → {2, 3}
差集-difference()a - b → {1}
对称差^symmetric_difference()a ^ b → {1, 4}
a = {1, 2, 3}
b = {2, 3, 4}

print(a | b) # {1, 2, 3, 4}
print(a & b) # {2, 3}
print(a - b) # {1}
print(a ^ b) # {1, 4}

子集与超集判断​

方法/操作符说明示例
<= / issubset()是否为子集{1, 2} <= {1, 2, 3} → True
>= / issuperset()是否为超集{1, 2, 3} >= {1} → True

frozenset​

frozenset 是不可变版本的集合,因此可以作为字典的键,或放入其他集合中:

fs = frozenset([1, 2, 3])
# fs.add(4) # AttributeError: 'frozenset' object has no attribute 'add'